package com.woniuxy.educationplatform.service;

import com.woniuxy.educationplatform.bean.GoodsBean;

import java.util.List;


public interface IGoodsService {
    /**
     * 通过Id查询商品
     * @param id
     * @return
     */
    GoodsBean findById(Integer id);

    /**
     * 分页查询所有商品
     * @return
     */
//   PageInfo<GoodsBean> findAll(PageRequest request, GoodsBean goodsBean);

    /**
     * 查询所有商品
     * @return
     */
    List<GoodsBean> findAll();

    /**
     * 根据Id删除商品
     * 弱删除  修改删除状态
     * @param id
     * @return
     */
    int deleteById(Integer id);

    /**
     * 查询销量前五
     * @return
     */
    List<GoodsBean> findGoodsSoldTop5();

    /**
     * 查询访问量前五
     * @return
     */
    List<GoodsBean> findGoodsVisitedTop5();

    /**
     * 新增非实物商品
     * @param goodsBean
     * @return
     */
   int saveGoods(GoodsBean goodsBean);

    /**
     * 新增实物商品
     * @param goodsBean
     * @return
     */
   int saveEntity(GoodsBean goodsBean);

    /**
     * 修改非实物商品
     * @param goodsBean
     * @return
     */
    int updateGoodsBean(GoodsBean goodsBean);

    /**
     * 修改实物商品
     * @param goodsBean
     * @return
     */
    int updateEntity(GoodsBean goodsBean);

    /**
     * 推荐设置
     * 0--推荐
     * 1--不推荐
     * @param goodsBean
     * @return
     */
    int updateRecommend(GoodsBean goodsBean);

    /**
     * 下架
     * 0--销售
     * 1--下架
     * @param goodsBean
     * @return
     */
    int updateStatus(GoodsBean goodsBean);

    /**
     * 模糊查询
     * @param goodsBean
     * @return
     */
   List<GoodsBean> findAllByParams(GoodsBean goodsBean);

   /**
     * 模糊查询实物
     * @param goodsBean
     * @return
     */
   List<GoodsBean> findEntityParams(GoodsBean goodsBean);

    /**
     * 查询所有的实物商品
     * @return
     */
    List<GoodsBean>  findEntity();
}
